package com.gc.server.dao;

import com.gc.server.entity.TodoEntity;
import com.gc.server.vo.TodoVo;
import org.apache.ibatis.annotations.Mapper;
import com.yf.dao.BaseDao;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 日程Dao
 *
 * @author hxf
 * @email 505860922@qq.com
 * @date Tue Mar 10 11:17:45 CST 2020
 */
@Mapper
public interface TodoDao extends BaseDao<TodoEntity> {


        List<TodoVo> queryListVo(TodoVo todoVo);

        TodoVo getVo(Long id);


    /**
     * 查找周计划的所有日程
     * @param planId
     * @return
     */
   List<TodoEntity> findByPlanId(Long planId);

    /**
     * 查找团队的日程
     * @param pid
     * @param userId
     * @param date
     * @return
     */
    List<TodoEntity> findMyShopUserUser(@Param("pid") Long pid, @Param("userId") Long userId, @Param("date") Date date);

    List<TodoVo> findVoByTopUser(@Param("pid") Long pid,  @Param("date") Date date);

    void del(@Param("userId") Long userId, @Param("date") Date date, @Param("type") Integer type, @Param("status") int status);

    TodoEntity findByUserIdAndTitleAndTypeAndDate(@Param("userId") Long userId, @Param("title") String title, @Param("type") Integer type,@Param("date") Date date);

    List<TodoEntity> findByDateAndUserId(@Param("userId") Long userId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);

    List<TodoEntity> findByDateAndUserIdAndTopUserId(@Param("userId") Long userId, @Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("topUserId") Long topUserId);

    List<TodoVo> findByDateAndIds(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("ids") List ids);

    Integer sumCheck(Long userId);
}
